package com.lesama.mfinal;

/*
* 1.final修饰方法，则方法不能再被重写
* 2.final修饰类，则类不能再被继承
* 3.final修饰变量，则变量为常量
*   3.1 final修饰基本数据类型，则值不能修改
*   3.2 final修饰引用数据类型，则地址不能修改
* 4.final修饰成员变量，则成员变量必须在初始化时赋值，默认值无效
* */

public class FinalDemo {
    public static void main(String[] args) {
        final int num = 0; // 若未赋值初始化，则使用时报错
        System.out.println(num);
        B b = new B();
        b.method();
    }
}

class A {
    public final int num = 10; // 若未赋值初始化，则立即报错
    public A() {
//        num = 20; // 可以在构造函数中初始化
    }

    public final void method() {
        System.out.println("A...");
    }
}

class B extends A {
    /*@Override
    public void method() {
        super.method();
    }*/
}
